FALCON REGISTERS 1 **************************************************************************** * * * * * ===================================================================== * * A T A R I - F A L C O N - H A R D W A R E - R E G I S T E R S * * ===================================================================== * * * * * * T R Y O F D O C U M E N T A T I O N B Y * * * * A E O N & C H R I S * * * * O F A U R A * * * * VERSION 0.4 (11.04.93) * * * * FIRST OFFICIAL RELEASE * * * **************************************************************************** For any questions and donations write to: AURA PLK 019200 C W-7600 OFFENBURG GERMANY If you have found some new things about the hardware just contact us. Don't forget to include international reply coupons if you expect an answer. Remember: Donations will force us to release more informations about the hardware. signing: AEON/CHRIS OF AURA ---------------------------------------------------------------------------- ******: seems to be unused new : new FALCON-adresses new<==: perhaps new FALCON registers <=====: new FALCON registers **************************************************************************** I D E - P O R T ( F A L C O N ) **************************************************************************** $FFF00000 [R/W] :$?? <===== : : : : : : $FFF0003F [R/W] :$?? <===== **************************************************************************** M E M O R Y - M A N A G E M E N T ( S T ) **************************************************************************** $FFFF8000 [R/W] :$8F ****** $FFFF8001 [R/W] :$00 Memory-Configuration **************************************************************************** ? ? ? **************************************************************************** $FFFF8006 [R/W] :$56 76______................................Monitor-Type Hi || 00 --------- SM124 and compatible 01 --------- SC1435 and compatible 10 --------- VGA and SYNC-monitors 11 --------- TV $FFFF8007 [R/W] :$65 <===== $FFFF800C [R/W] :$8F ****** $FFFF800D [R/W] :$00 <===== **************************************************************************** V I D E O - S Y S T E M ( F A L C O N ) **************************************************************************** $FFFF8200 [R/W] :$8F ****** $FFFF8201 [R/W] :$3F Video-Address Hi $FFFF8202 [R/W] :$8F ****** $FFFF8203 [R/W] :$82 Video-Address Mi $FFFF8204 [R/W] :$8F ****** $FFFF8205 [R/W] :$3F Video-Address-Counter Hi $FFFF8206 [R/W] :$8F ****** $FFFF8207 [R/W] :$AB Video-Address-Counter Mi $FFFF8208 [R/W] :$8F ****** $FFFF8209 [R/W] :$D2 Video-Address-Counter Lo $FFFF820A [R/W] :$02 ______10 ..................................... Syncmode || |+----- 1: external clock | 0: internal clock +------ set to one (ex-50/60 Hz-Bit) $FFFF820B [R/W] :$00 ****** $FFFF820C [R/W] :$8F ****** $FFFF820D [R/W] :$00 Video-Address Lo $FFFF820E [R/W] :$00 _______0 ................................. Line-Wide Hi $FFFF820F [R/W] :$00 76543210 ................................. Line-Wide Lo This register is used to configure the worddistanz from the end of one to the beginning of the next graphic line. Example: $0050 adds 80 words (160 bytes) after every line to the Videoaddress. $FFFF8210 [R/W] :$00 ______10 ............................. Vertical-Wrap Hi $FFFF8211 [R/W] :$50 76543210 ..............................Vertical-Wrap Lo This register is used to configure the wordlengh of one graphic line. Example: ST-Low : $0050= 80 words 256 Colors/640x200: $0140=320 words True-Color/320x400: $0140=320 words $FFFF8212 [R/W] :$8F ****** : : : : : : : : $FFFF823F [R/W] :$6A ****** $FFFF8240 [R/W] :$0F ST Color $00 Hi $FFFF8241 [R/W] :$0F Lo $FFFF8242 [R/W] :$0F ST Color $01 Hi $FFFF8243 [R/W] :$0F Lo $FFFF8244 [R/W] :$00 ST Color $02 Hi $FFFF8245 [R/W] :$00 Lo $FFFF8246 [R/W] :$00 ST Color $03 Hi $FFFF8247 [R/W] :$00 Lo $FFFF8248 [R/W] :$00 ST Color $04 Hi $FFFF8249 [R/W] :$00 Lo $FFFF824A [R/W] :$0F ST Color $05 Hi $FFFF824B [R/W] :$0F Lo $FFFF824C [R/W] :$00 ST Color $06 Hi $FFFF824D [R/W] :$00 Lo $FFFF824E [R/W] :$0D ST Color $07 Hi $FFFF824F [R/W] :$0D Lo $FFFF8250 [R/W] :$04 ST Color $08 Hi $FFFF8251 [R/W] :$04 Lo $FFFF8252 [R/W] :$05 ST Color $09 Hi $FFFF8253 [R/W] :$05 Lo $FFFF8254 [R/W] :$00 ST Color $0A Hi $FFFF8255 [R/W] :$00 Lo $FFFF8256 [R/W] :$05 ST Color $0B Hi $FFFF8257 [R/W] :$05 Lo $FFFF8258 [R/W] :$00 ST Color $0C Hi $FFFF8259 [R/W] :$00 Lo $FFFF825A [R/W] :$05 ST Color $0D Hi $FFFF825B [R/W] :$05 Lo $FFFF825C [R/W] :$00 ST Color $0E Hi $FFFF825D [R/W] :$00 Lo $FFFF825E [R/W] :$00 ST Color $0F Hi $FFFF825F [R/W] :$00 Lo $FFFF8260 [R/W] :$01 ______10 ..................................... ST-Shift || 00---- ST-Lowres 01---- ST-Medres 10---- ST-Highres 11---- not defined $FFFF8261 [R/W] :$00 ****** $FFFF8262 [R/W] :$00 ****** $FFFF8263 [R/W] :$00 ****** $FFFF8264 [R/W] :$00 ________ ..........................Horizontal-Scroll Hi $FFFF8265 [R/W] :$00 ____3210 ..........................Horizontal-Scroll Lo |||| ++++---- 0-15: left shifted pixel $FFFF8266 [R/W] :$00 _____2_0 .............................. Falcon-Shift Hi | | | +---- 1: True-color mode +------ 1: 2-color mode $FFFF8267 [R/W] :$00 _654____ ...............................Falcon-Shift Lo ||| ||+-------- 1: 256-color mode |+--------- 0: internal vertical sync | 1: external vertical sync +---------- 0: internal horizontal sync 1: external horizontal sync $FFFF8268 [R/W] :$00 ****** : : : : : : : : $FFFF827F [R/W] :$00 ****** $FFFF8280 [R/W] :$00 ______10 ................... Horizontal-hold-counter Hi $FFFF8281 [R/W] :$0F 76543210 ................... Horizontal-hold-counter Lo You can only read this register. $FFFF8282 [R/W] :$00 ______10 ..................... Horizontal-hold-timer Hi $FFFF8283 [R/W] :$00 76543210 ..................... Horizontal-hold-timer Lo $FFFF8284 [R/W] :$00 ______10 ................... Horizontal-border-begin Hi $FFFF8285 [R/W] :$00 76543210 ................... Horizontal-border-begin Lo $FFFF8286 [R/W] :$00 ______10 ..................... Horizontal-border-end Hi $FFFF8287 [R/W] :$00 76543210 ..................... Horizontal-border-end Lo $FFFF8288 [R/W] :$02 ______10 .................. Horizontal-display-begin Hi $FFFF8289 [R/W] :$02 76543210 .................. Horizontal-display-begin Lo $FFFF828A [R/W] :$00 ______10 .................... Horizontal-display-end Hi $FFFF828B [R/W] :$00 76543210 .................... Horizontal-display-end Lo $FFFF828C [R/W] :$00 ______10 ............................. Horizontal-SS Hi $FFFF828D [R/W] :$00 76543210 ............................. Horizontal-SS Lo $FFFF828E [R/W] :$00 _______0 ............................. Horizontal-FS Hi $FFFF828F [R/W] :$00 76543210 ............................. Horizontal-FS Lo $FFFF8290 [R/W] :$00 _______0 ............................. Horizontal-HH Hi $FFFF8291 [R/W] :$00 76543210 ............................. Horizontal-HH Lo $FFFF8292 [R/W] :$00 ****** : : : : : : : : $FFFF829F [R/W] :$00 ****** $FFFF82A0 [R/W] :$01 _____210 ................. Vertical-frequenz-counter Hi $FFFF82A1 [R/W] :$9C 76543210 ................. Vertical-freuqenz-counter Lo You can only read this register. $FFFF82A2 [R/W] :$02 _____210 ................... Vertical-frequenz-timer Hi $FFFF82A3 [R/W] :$02 76543210 ................... Vertical-frequenz-timer Lo $FFFF82A4 [R/W] :$02 _____210 ..................... Vertical-border-begin Hi $FFFF82A5 [R/W] :$02 76543210 ..................... Vertical-border-begin Lo $FFFF82A6 [R/W] :$00 _____210 ....................... Vertical-border-end Hi $FFFF82A7 [R/W] :$00 76543210 ....................... Vertical-border-end Lo $FFFF82A8 [R/W] :$00 _____210 .................... Vertical-display-begin Hi $FFFF82A9 [R/W] :$00 76543210 .....................Vertical-display-begin Lo $FFFF82AA [R/W] :$01 _____210 .......................Vertical-display-end Hi $FFFF82AB [R/W] :$01 76543210 .......................Vertical-display-end Lo $FFFF82AC [R/W] :$02 _____210 ................................Vertical-SS Hi $FFFF82AD [R/W] :$02 76543210 ................................Vertical-SS Lo $FFFF82AE [R/W] :$00 ****** : : : : : : : : $FFFF82BF [R/W] :$00 ****** $FFFF82C0 [R/W] :$00 <===== Hi $FFFF82C1 [R/W] :$00 <===== Lo $FFFF82C2 [R/W] :$00 ________ ............................. Video-Control Hi $FFFF82C3 [R/W] :$00 _____21_ ............................. Video-Control Lo || |+----- 1: interlace on +------ 0: 320 pixel horizontal 1: 640 pixel horizontal **************************************************************************** D M A / D I S K - C O N T R O L L E R ( S T ) **************************************************************************** $FFFF8604 [R/W] :$00A0 FDC / Sektor Count $FFFF8606 [R/-] :$0001 DMA Status [-/W] :$0001 DMA Mode $FFFF8608 [R/W] :$00 ****** $FFFF8609 [R/-] :$00 Count Hi [-/W] :$00 DMA Base Hi $FFFF860A [R/W] :$00 ****** $FFFF860B [R/-] :$20 Count Mi [-/W] :$20 DMA Base Mi $FFFF860C [R/W] :$00 ****** $FFFF860D [R/-] :$C6 Count Lo [-/W] :$C6 DMA Base Lo $FFFF860E [R/W] :$00 <===== $FFFF860F [R/W] :$80 <===== **************************************************************************** P S G - S O U N D C H I P AY-3-8910 ( S T ) **************************************************************************** $FFFF8800 [R/-] :$67 Read Data [-/W] :$67 Register Selection $FFFF8801 [R/W] :$FF ****** $FFFF8802 [R/W] :$CF Write Data $FFFF8803 [R/W] :$FF ****** NOTE: The PSG-Registers are now fixed at 2 addresses($8800.w/$8802.w). Accessing the shadowregisters ($8804.w-$8900.w) cause a buserror. **************************************************************************** P C M - S O U N D C H I P ( C O D E C ) **************************************************************************** $FFFF8900 [R/W] :$05 ____3210 ......................... Sound-DMA-Control Hi |||| |||| MFP-IRQ-7 ||00---- no request ||01---- after playing a frame ||10---- after recording a frame ||11---- after playing or recording a frame || || Timer-A-Request 00------ no request 01------ after playing a frame 10------ after recording a frame 11------ after playing or recording a frame $FFFF8901 [R/W] :$00 7_54__10 ......................... Sound-DMA-Control Lo | || || | || |+---- 1: DMA-Play enable | || +----- 1: DMA-Play frame repeat | |+-------- 1: DMA-Record enable | +--------- 1: DMA-Record frame repeat +----------- 0: select playframe-adresses 1: select recordfame-adresses ..................................Frame-Addresses $FFFF8902 [R/W] :$00 ****** $FFFF8903 [R/W] :$01 Frame-Start-Address Hi $FFFF8904 [R/W] :$00 ****** $FFFF8905 [R/W] :$29 Frame-Start-Address Mi $FFFF8906 [R/W] :$00 ****** $FFFF8907 [R/W] :$9C Frame-Start-Address Lo $FFFF8908 [R/W] :$00 ****** $FFFF8909 [R/W] :$01 Frame-Address-Counter Hi $FFFF890A [R/W] :$00 ****** $FFFF890B [R/W] :$29 Frame-Address-Counter Mi $FFFF890C [R/W] :$00 ****** $FFFF890D [R/W] :$9C Frame-Address-Counter Lo $FFFF890E [R/W] :$00 ****** $FFFF890F [R/W] :$02 Frame-End-Address Hi $FFFF8910 [R/W] :$00 ****** $FFFF8911 [R/W] :$B0 Frame-End-Address Mi $FFFF8912 [R/W] :$00 ****** $FFFF8913 [R/W] :$3C Frame-End-Address Lo